package com.doit.day04

import scala.collection.immutable
import scala.io.Source

/**
 * 数据如下  :每个字母代表一个人 ,  统计任意一个人和其他人的共同好友
 * A:B,C,D,F,E,O
 * B:A,C,E,K
 * C:F,A,D,I
 * D:A,E,F,L
 * E:B,C,D,M,L
 * F:A,B,C,D,E,O,M
 * G:A,C,D,E,F
 * H:A,C,D,E,O
 * I:A,O
 * J:B,O
 * K:A,C,D
 * L:D,E,F
 * M:E,F,G
 * O:A,H,I,J
 */
object _04_共同好友 {
  def main(args: Array[String]): Unit = {
    val list: List[String] = Source.fromFile("data/sameFriends.txt").getLines().toList

    //做了一个转变
    val tuples: List[(String, List[String])] = list.map(line => {
      val arr: Array[String] = line.split(":")
      val me: String = arr(0)
      val friends: List[String] = arr(1).split(",").toList
      (me, friends)
    })

    //获取共同好友？
   /* for(i <- 0 until tuples.size-1){
      for(j <- i+1 until tuples.size){
        val me: String = tuples(i)._1
        val myFriends: List[String] = tuples(i)._2
        val you: String = tuples(j)._1
        val yourFriends: List[String] = tuples(j)._2
        val sameFriends: List[String] = myFriends.intersect(yourFriends)
        if(sameFriends.size >0){
          //这两个取交集
          println(me+"和"+you+"的共同好友是："+sameFriends)
        }else{
          println(me+"和"+you+"没有共同好友")
        }
      }
    }*/
    //双重循环
//    tuples.reduce((tp1,tp2)=>{
//
//    })


/*    for (elem <- tuples) {
      for (elem1 <- tuples) {
        if(elem != elem1){
          //共同好友取交集==》 两个数组或两个集合
          val myFriends: List[String] = elem._2
          val yourFriends: List[String] = elem1._2
          val sameFriends: List[String] = myFriends.intersect(yourFriends)
          if(sameFriends.size >0){
            //这两个取交集
            println(elem._1+"和"+elem1._1+"的共同好友是："+sameFriends)
          }else{
            println(elem._1+"和"+elem1._1+"没有共同好友")
          }
        }
      }
    }*/


  }
}
